Component({
  behaviors: [],
  // 属性定义（详情参见下文）
  properties: {
    show: { // 属性名
      type: Boolean,
      value: false
    },
    maxLength: {
      type: Number,
      value: 6
    }
  },
  data: {
    value: ''
  }, // 私有数据，可用于模板渲染
  lifetimes: {
    // 生命周期函数，可以为函数，或一个在methods段中定义的方法名
    attached: function () { },
    moved: function () { },
    detached: function () { },
  },
  // 生命周期函数，可以为函数，或一个在methods段中定义的方法名
  attached: function () { }, // 此处attached的声明会被lifetimes字段中的声明覆盖
  ready: function() { },
  pageLifetimes: {
    // 组件所在页面的生命周期函数
    show: function () { },
    hide: function () { },
    resize: function () { },
  },
  methods: {
    onClose () {
      this.setData({
        value: ''
      })
      this.triggerEvent('close')
    },
    // 点击
    tapKey (e) {
      console.log('你哈市=>' , e, this.properties)
      if (this.data.value.length >= this.properties.maxLength) {
        return
      }
      this.setData({
        value: this.data.value + e.currentTarget.dataset.key
      })
    },
    // 清除
    tapClear () {
      let length = this.data.value.length
      console.log('清除', length, this.data.value)
       if (length) {
         this.setData({
           value: this.data.value.slice(0, length-1)
         })
       }
    },
    // 取消
    tapDel () {
      this.onClose()
    },
    // 提交
    tapSubmit () {
      console.log('提交', this.data.value)
      if (this.data.value.length !== this.properties.maxLength) {
        wx.showToast({
          title: `请输入${this.properties.maxLength}位字符!`,
          icon: 'none',
          duration: 1500
        })
        return
      }
      this.triggerEvent('submit', this.data.value)
      this.onClose()
    },
    onMyButtonTap: function(){
      this.setData({
        // 更新属性和数据的方法与更新页面数据的方法类似
      })
    },
    // 内部方法建议以下划线开头
    _myPrivateMethod: function(){
      // 这里将 data.A[0].B 设为 'myPrivateData'
      this.setData({
        'A[0].B': 'myPrivateData'
      })
    },
    _propertyChange: function(newVal, oldVal) {
      console.log('内部方法=>', newVal, oldVal)
    }
  }
})